package media;


/**
 * Содержит общую информацию о ресурсах.
 * 
 * @author Valentine
 * 
 */
public abstract class Resource {

//==================================================================== Константы
public static final int RES_UNK = 0; // Неизвестный ресурс
public static final int RES_SML_STATIC = 1; // Статический смайл
public static final int RES_SML_ANI = 2; // Анимированный смайл
public static final int RES_SML_UNK = 3; // Неизвестный смайл

//=================================================================== Переменные
public int type; // Тип хранимого содержимого
/**
 * Идентификатор. Состоит из 2-х величин:<br />
 * - идентификатор пользователя (0 - сервер); <br />
 * - идентификатор ресурса.
 */
public Long id; // Идентификатор
public int dlStatus; // Состояние загрузки, %.


//================================= Получить идентификатор объекта в виде текста
/**
 * Получить идентификатор объекта в виде текста.
 * 
 * @return
 */
public String getStrID() {

	long id = this.id.longValue();

	int high = (int) ((id & 0xffffffff00000000L) >>> (8 * 4));

	if (high == 0) {
		return "" + id;
	} else {
		return "" + high + "-" + (id & 0x00000000ffffffffL);
	}
}


//=================================== Задать идентификатор объекта в виде текста
/**
 * Задать идентификатор объекта в виде текста.
 */
public void setStrID(String idStr) {

}


//==================================== Задать идентификатор объекта в виде целых
/**
 * Задать идентификатор объекта в виде целых величин - ID владельца и ID ресурса
 */
public void setID(int ownerID, int resID) {

	this.id = new Long((((long) ownerID) << (8 * 4)) + resID);
}


}
